import { inject, injectable, named } from "inversify";
import { InvalidEQPathInDebuggerServiceId } from "../../../../application/diagnostics/checks/invalidPythonPathInDebugger";
import { IDiagnosticsService, IInvalidEQPathInDebuggerService } from "../../../../application/diagnostics/types";
import { IDocumentManager, IWorkspaceService } from "../../../../common/application/types";
import { IPlatformService } from "../../../../common/platform/types";
import { IConfigurationService } from "../../../../common/types";
import { IInterpreterService } from "../../../../interpreter/contracts";
import { LaunchRequestArguments } from "../../../types";
import { BaseConfigurationResolver } from "./base";
import { IDebugEnvironmentVariablesService } from "./helper";

@injectable()
export class LaunchConfigurationResolver extends BaseConfigurationResolver<LaunchRequestArguments> {
    constructor(
        @inject(IWorkspaceService) workspaceService: IWorkspaceService,
        @inject(IDocumentManager) documentManager: IDocumentManager,
        @inject(IDiagnosticsService)
        @named(InvalidEQPathInDebuggerServiceId)
        private readonly invalidEQPathInDebuggerService: IInvalidEQPathInDebuggerService,
        @inject(IPlatformService) platformService: IPlatformService,
        @inject(IConfigurationService) configurationService: IConfigurationService,
        @inject(IDebugEnvironmentVariablesService) private readonly debugEnvHelper: IDebugEnvironmentVariablesService,
        @inject(IInterpreterService) interpreterService: IInterpreterService,
    ) {
        super(workspaceService, documentManager, platformService, configurationService, interpreterService);
    }
}


